package com.zishuimuyu.utills;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import org.ini4j.Config;
import org.ini4j.Ini;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * TODO
 *
 * @author：GJH
 * @date 2022年02月09日
 * @company：北京木联能软件股份有限公司
 */
public class SaveRecordsUtil {

    public static void uploadLog(File file, String fileName, Map<String, String> fileTypes) {
        if (ObjectUtil.isEmpty(fileName)) {
            return;
        }
        try {
            //下载天气预报文件，只能保存在一个文件夹里，否则会重复下载文件
            String iniFileName = DateUtil.today();
            Ini ini = new Ini(file);
            Config config = new Config();
            config.setEscape(false);
            ini.setConfig(config);
            //有文件创建,开始具体业务
            //上送文件
            Set<String> types = fileTypes.keySet();
            ini.put("Count", "lastTime", DateUtil.now());
            for (String type : types) {
                if (fileName.contains(fileTypes.get(type))) {
                    //将文件内容保存到ini对象中,保存记录
                    // ini.add(),此方法，key允许重复
                    ini.put(type, fileName, DateUtil.now());
                    break;
                } else {
                    ini.put("weather", fileName, DateUtil.now());

                }

            }
            //key不能重复
            //将文件内容保存到文件中
            ini.store(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void saveUploadLog(File file, List<String> fileNameList, Map<String, String> fileTypes) {
        if (CollUtil.isEmpty(fileNameList)) {
            return;
        }
        try {
            FileUtil.touch(file);
            //下载天气预报文件，只能保存在一个文件夹里，否则会重复下载文件
            Ini ini = new Ini(file);
            Config config = new Config();
            config.setEscape(false);
            ini.setConfig(config);
            //有文件创建,开始具体业务
            //上送文件
            Set<String> types = fileTypes.keySet();
            for (String type : types) {
                for (String uploadedFileName : fileNameList) {
                    if (uploadedFileName.contains(fileTypes.get(type))) {
                        //将文件内容保存到ini对象中,保存记录
                        //key不能重复
                        // ini.add(),此方法，key允许重复
                        ini.put(type, uploadedFileName, DateUtil.now());
                        break;
                    }
                }
            }
            ini.put("Count", "lastTime", DateUtil.now());
            //将文件内容保存到文件中
            ini.store(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public static void saveDownloadLog(File iniFile, List<String> fileNameList) {
        if (CollUtil.isEmpty(fileNameList)) {
            return;
        }
        try {
            FileUtil.touch(iniFile);
            Ini ini = new Ini(iniFile);
            Config config = new Config();
            config.setEscape(false);
            ini.setConfig(config);
            //有文件创建,开始具体业务
            //上送文件
            for (String fileName : fileNameList) {
                //将文件内容保存到ini对象中,保存记录
                // ini.add(),此方法，key允许重复
                ini.put(DateUtil.today(), fileName, DateUtil.now());
                ini.put("Count", "lastTime", DateUtil.now());
            }
            //key不能重复
            //将文件内容保存到文件中
            ini.store(iniFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
